﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Transport
{
    public class BangGiaLoTrinhAdminControl
    {
        transportEntities db;

        public BangGiaLoTrinhAdminControl()
        {
            db = new transportEntities();
        }

        public List<bang_gia_theo_lo_trinh> findByRouteID(string RouteID)
        {
            try
            {
                return db.bang_gia_theo_lo_trinh.Where(t => t.ma_lo_trinh == RouteID).ToList();
            }
            catch(Exception)
            {
                return null;
            }
        }

        public List<bang_gia_theo_lo_trinh> findByRouteName(string name)
        {
            try
            {
                var result = (from a in db.bang_gia_theo_lo_trinh
                              from b in db.lo_trinh
                              where a.ma_lo_trinh == b.ma_lo_trinh && b.ten_lo_trinh == name
                              select a).ToList();

                return result;
            }
            catch (Exception)
            {
                return null;
            }
        }

        public bang_gia_theo_lo_trinh findByCarNumberAndRouteID(string carnumber, string routeid)
        {
            try
            {
                return db.bang_gia_theo_lo_trinh.SingleOrDefault(t => t.ma_bien_so == carnumber && t.ma_lo_trinh == routeid);
            }
            catch (Exception)
            {
                return null;
            }
        }
        public bang_gia_theo_lo_trinh findByCarNumber(string carnumber)
        {
            try
            {
                return db.bang_gia_theo_lo_trinh.SingleOrDefault(t => t.ma_bien_so == carnumber);
            }
            catch (Exception)
            {
                return null;
            }
        }
        public List<bang_gia_theo_lo_trinh> findByCarID(string number)
        {
            try
            {
                return db.bang_gia_theo_lo_trinh.Where(t => t.ma_bien_so == number).ToList();
            }
            catch (Exception)
            {
                return null;
            }
        }
        public bool insert(bang_gia_theo_lo_trinh value)
        {
            try
            {
                db.bang_gia_theo_lo_trinh.AddObject(value);
                db.SaveChanges();
                return true;
            }
            catch (Exception)
            {
                return false;
            }
        }

        public bool update(bang_gia_theo_lo_trinh value)
        {
            try
            {
                bang_gia_theo_lo_trinh bg = db.bang_gia_theo_lo_trinh.SingleOrDefault(t => t.ma_bien_so == value.ma_bien_so && t.ma_lo_trinh == value.ma_lo_trinh);
                bg = value;
                db.SaveChanges();
                return true;
            }
            catch (Exception)
            {
                return false;
            }
        }

        public bool delete(string carnumber, string route)
        {
            try
            {
                bang_gia_theo_lo_trinh bg = db.bang_gia_theo_lo_trinh.SingleOrDefault(t => t.ma_bien_so == carnumber && t.ma_lo_trinh == route);
                db.bang_gia_theo_lo_trinh.DeleteObject(bg);
                db.SaveChanges();
                return true;
            }
            catch (Exception)
            {
                return false;
            }
        }
    }
}